var ikeaForm = Ext.create('Ext.form.Panel', {
			bodyPadding : 5,
			border : 0,
			url : 'dictionaryAction!saveOrUpdate.action',
			layout : 'anchor',
			defaultType : 'textfield',
			defaults : {
				anchor : '90%',
				labelAlign : 'left',
				labelWidth : 60
			},
			items : [{
						xtype : 'hiddenfield',
						name : 'dictionary.id'
					}, {
						fieldLabel : '名称<font color=red>*</font>',
						name : 'dictionary.name',
						allowBlank : false
					}, {
						fieldLabel : '代码<font color=red>*</font>',
						name : 'dictionary.code',
						allowBlank : false
					}, {
						fieldLabel : '类别',
						name : 'dictionary.type'
					}, {
						fieldLabel : '描述',
						name : 'dictionary.depict'
					}]
		});

var ikeaWin = Ext.create('Ext.window.Window', {
			title : '新增',
			height : 200,
			width : 350,
			modal : true,
			layout : 'fit',
			closeAction : 'hide',
			closable : true,
			items : [ikeaForm],
			listeners : {
				show : function() {
					ikeaForm.getForm().reset();
				}
			},
			buttonAlign : 'center',
			buttons : [{
						text : '提交',
						formBind : true, // only enabled once the form is
						/*disabled : true,*/
						handler : function() {
							var form = ikeaForm.getForm();
							var id = form.findField('dictionary.id').getValue();
							form.submit({
								success : function(form, action) {
									var msg = "新增成功！";
									if (id) {
										msg = "修改成功！";
									}
									Ext.Msg.show({
												title : '提示',
												msg : msg,
												buttons : Ext.Msg.OK,
												width : 300,
												fn : function() {
													store.reload();
												}
											});
									ikeaWin.hide();
								}
									// ,
									// failure: function(form, action) {
									// Ext.Msg.alert('Failed', '保存失败！');
									// }
								});
						}
					}, {
						text : '取消',
						handler : function() {
							ikeaWin.close();
						}
					}]
		});
// register model
Ext.define('Dictionary', {
			extend : 'Ext.data.Model',
			idProperty : 'id',
			fields : [{
						name : 'id'
					}, {
						name : 'name'
					}, {
						name : 'code'
					}, {
						name : 'type'
					}, {
						name : 'url'
					}, {
						name : 'depict'
					}]
		});
var store = Ext.create('Ext.data.Store', {
			model : 'Dictionary',
			pageSize : 20,
			proxy : {
				type : 'ajax',
				url : 'dictionaryAction!queryPage.action',
				reader : {
					type : 'json',
					root : 'pageList'
				}
			}
		});

var grid = Ext.create('Ext.grid.Panel', {
	store : store,
	border : 0,
	selModel : Ext.create('Ext.selection.CheckboxModel'),
	columns : [{
				text : 'id',
				dataIndex : 'id',
				hidden : true
			}, {
				text : '名称',
				sortable : true,
				dataIndex : 'name',
				width : 200
			}, {
				text : '代码',
				sortable : true,
				dataIndex : 'code',
				width : 200
			}, {
				text : '类别',
				sortable : true,
				dataIndex : 'type',
				width : 200
			}, {
				text : '描述',
				sortable : true,
				dataIndex : 'depict',
				flex : 1
			}],
	stripeRows : true,
	tbar : [{
				xtype : 'button',
				text : '新增',
				iconCls : 'icon-add',
				handler : function() {
					ikeaWin.show();
				}
			}, {
				xtype : 'button',
				text : '修改',
				iconCls : 'icon-edit',
				handler : function() {
					var selMode = grid.getSelectionModel();
					var model = selMode.getSelection();
					// console.log(raw);
					if (model[0]) {
						var raw = model[0].raw;
						ikeaWin.title = '修改';
						ikeaWin.show();
						ikeaForm.getForm().findField('dictionary.id')
								.setValue(raw.id);
						ikeaForm.getForm().findField('dictionary.name')
								.setValue(raw.name);
						ikeaForm.getForm().findField('dictionary.code')
								.setValue(raw.code);
						ikeaForm.getForm().findField('dictionary.type')
								.setValue(raw.type);
						ikeaForm.getForm().findField('dictionary.depict')
								.setValue(raw.depict);
					} else {
						Ext.Msg.alert('提示', '请选择要修改的数据行！');
					}

				}
			}, {
				xtype : 'button',
				text : '删除',
				iconCls : 'icon-delete',
				handler : function() {
					var selMode = grid.getSelectionModel();
					var model = selMode.getSelection();

					if (model[0]) {
						var ids = [];// 删除多个
						Ext.Array.each(model, function(item) {
									ids.push(item.raw.id);
								});

						Ext.Msg.show({
							title : '确认删除',
							buttons : Ext.MessageBox.OKCANCEL,
							msg : '该操作将删除关联【业务字典表】数据，请慎重选择！',
							fn : function(btn) {
								if (btn == 'ok') {
									Ext.Ajax.request({
										url : 'dictionaryAction!delete.action?ids='
												+ ids,
										success : function(response) {
											Ext.Msg.show({
														title : '提示',
														msg : '删除成功！',
														buttons : Ext.Msg.OK,
														width : 300,
														fn : function() {
															store.reload();
														}
													});
										},
										failure : function(response, opts) {
											console
													.log('server-side failure with status code '
															+ response.status);
										}
									});
								}
							}
						});
					} else {
						Ext.Msg.alert('提示', '请选择要删除的数据行！');
					}
				}
			}, '->', {
				width : 350,
				fieldLabel : '搜索',
				labelWidth : 50,
				emptyText : '请输入名称或代码或类别',
				xtype : 'searchfield',
				store : store
			}],
	bbar : Ext.create('Ext.PagingToolbar', {
				pageSize : 20,// 每页20条
				store : store,
				displayInfo : true,
				plugins : Ext.create('Ext.ux.ProgressBarPager', {})
			})
});

Ext.onReady(function() {
			Ext.create('Ext.container.Viewport', {
						layout : 'fit',
						items : [grid]
					});
			store.load();
		});
